Generally, this invention relates to the field of controlling input/output boards which are connected to an I/O bus. Specifically, the invention focuses on techniques to configure aspects, such as address space, of input/output boards without needing to physically connect or change jumpers on the card either at physical installation or after a system change.
Assembling computer systems to suit individual needs or desires by adding peripheral devices is often done. When such devices are connected, frequently they connect to the computer through an I/O card. These I/O boards are installed at initial computer manufacture as well as whenever a user adds new capabilities to the computer by plugging them into available slots on the input/output bus of the computer. Unfortunately, the process of adding capability involves more than just "plugging in" the I/O board and running the computer. The user or installer must configure the I/O board so that the computer can recognize it to communicate with it. This can be an involved process. When a standard I/O bus--the type of I/O bus traditionally installed in most computers--is involved, this process can be quite involved.
For a computer to be able to communicate with the I/O board, the computer must not only know what type of board it is, it must be able to selectively locate the I/O board and direct communications only to it. This is referred to as addressing the I/O board. As an example of the difficulties potentially encountered when assembling or changing such computer systems, the address must be assigned so that no other I/O boards have that same address. This problem of address allocation has been known for many years; several different solutions have been proposed, all with limitations overcome by the present invention. Several of these solutions, are discussed herein.
Perhaps the most common solution, and that referred to above is to provide physically changeable circuitry on the I/O board itself. The address or other characteristic is thus personalized by switches or jumpers which the installer must know how to set. The main drawback is that manual intervention is required at installation time which may lead to configuration errors. This can also require more detailed customer documentation and, as a practical matter, often leads the user to enlist professional help.
A second solution in the prior art is to replace the I/O bus. Recently, I/O busses have been developed which can specifically select one of the slots available through a slot select line or other technique. Naturally this has the undesirable consequence of increasing cost and possibly even making slot location an important installation criteria. As an example of such a solution, U.S. Pat. No. 4,755,934 to Inoue discloses a system which selects a board location by a slot select signal generated through the I/O bus and then assigns the board in that slot a specific address. While such a solution can overcome the need for installation decisions, it does not meet the criteria of the present invention of accommodating existing designs.
Another solution is that proposed in U.S. Pat. No. 4,964,038 to Louis. This proposes a system in which all I/O boards connected to the I/O bus utilize specific circuitry capable of generating a random address. If there are as many addresses generated as there are boards connected, it can then be assumed that each board has a unique address; if not, the random generation process is repeated. While this solution does specifically address the ability to be compatible with standard I/O busses, it has drawbacks overcome by the present invention. Among these are both the requirement that all boards to be of that type (again not allowing accommodation of existing systems) and the inherent difficulties of using randomly generated addresses in configurations which usually place some constraints on address possibilities.
One other solution is that proposed by U.S. Pat. No. 4,675,813 to Locke in which the I/O board includes circuitry which specifically recognizes a hardwire-set address and a configurable address register. While this solution can work with a standard I/O bus and with other, traditional I/O boards, it has other limitations. It does require the hardwire-set address to be unique. This can be unacceptable in the present environment in which a manufacturer simply cannot know how each system might be configured. In addition, it also is limited in that only one such I/O board can be placed in any system. Again the present invention overcomes such limits.
While each of the above limitations have been recognized, a solution to such problems, among others, has not been available prior to the present invention. Certainly the long felt need existed and as the present invention shows, the implementing arts and elements had been long available. Those skilled in the art appear to have been led to believe that hardware and other such solutions were the only practical possibility by some of the prior efforts. In addition, the degree to which the common usage preconditions approaches from device, command, and connection perspectives has taught those skilled in the art in a direction away from that taken by the present inventors. Each appear to have taught away from the combination of commercial sensitivity and technical expertise necessary to achieve the present invention. All may have combined to cause the simple fact that those skilled in the art failed to see that the problem could be solved in a relatively simple manner.